﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ContaTelefone.Data;
using ContaTelefone.Entities;

namespace ContaTelefone.Process
{
    public class CCustoProcess
    {
        CENTRO_CUSTORepository ccR = new CENTRO_CUSTORepository();

        public void Incluir(CCustoEntities ccusEtt)
        {
            CENTRO_CUSTO ccus = new CENTRO_CUSTO();
            ccus.COD_CCUS = ccusEtt.Codigo;
            ccus.DESCRICAO = ccusEtt.Descricao;

            ccR.Add(ccus);
        }

        public void Alterar(CCustoEntities ccusEtt)
        {
            CENTRO_CUSTO ccus = ccR.getCENTRO_CUSTO(ccusEtt.Codigo);
            if (ccus != null)
            {
                ccus.COD_CCUS = ccusEtt.Codigo;
                ccus.DESCRICAO = ccusEtt.Descricao;

                ccR.Update();
            }
        }

        public void Delete(CCustoEntities ccusEtt)
        {
            CENTRO_CUSTO ccus = ccR.getCENTRO_CUSTO(ccusEtt.Codigo);
            if (ccus != null)
                ccR.Delete(ccus);
        }

        public CCustoEntities getCCUS(string Codigo)
        {
            CENTRO_CUSTO ccus = ccR.getCENTRO_CUSTO(Codigo);
            if (ccus != null)
            {
                CCustoEntities ccueEtt = new CCustoEntities();
                ccueEtt.Codigo = ccus.COD_CCUS;
                ccueEtt.Descricao = ccus.DESCRICAO;

                return ccueEtt;
            }
            else
                return null;
        }

        public List<CCustoEntities> Listar()
        {
            List<CCustoEntities> lista = new List<CCustoEntities>();

            foreach(CENTRO_CUSTO ccus in ccR.GetCENTRO_CUSTOs())
            {
                lista.Add(getCCUS(ccus.COD_CCUS));
            }

            return lista;
        }

    }
}
